home *** CD-ROM | disk | FTP | other *** search
- TITLE ONLINE [8-1-85]
- ;
- LF EQU 0AH
- CR EQU 0DH
- NFUNC EQU 0E3H
- DOSINT EQU 21H
- ;
- CODE SEGMENT
- ASSUME DS:CODE, SS:CODE ,CS:CODE ,ES:CODE
- ORG 100H
- ONLINE PROC NEAR
- JMP START
-
- CURSTANUM DB 0
- LINKEDCNT DB 0
- BINDERY DB 0EH,'IDENTIFICATION'
- CHGMSG DB 'link'
- HEADER DB 1BH,'[2J╔═════════════════════════════════════════════════════════════════════════════╗',CR,LF
- DB '║ Advanced Netware User List for Novell '
- PNET_NAME DB ' (AHA 8508.02) ║',CR,LF
- DB '╟─────────┬────────┬──────────────────────────────────────────────┬───────────╢',CR,LF
- DB '║ Station │ Status │ User Identification │ Phone ║',CR,LF
- DB '╟─────────┼────────┼──────────────────────────────────────────────┼───────────╢',CR,LF,'$'
- MSGLINE DB '║ '
- STATION DB '00 │ '
- LOLIMSG DB 'logged │ '
- SPACES DB ' '
- NAMSG DB ' '
- EXTEN DB ' ║',CR,LF,'$'
- CONNECT DB '╟─────────┴────────┴──────────────────────────────────────────────┴───────────╢',CR,LF
- DB '║ There are '
- CONCNT DB '00 logged, and '
- LINCNT DB '00 linked connections in use ║',CR,LF,'$'
- TRAILER DB '╚═════════════════════════════════════════════════════════════════════════════╝',CR,LF,'$'
- TXBUF DB 2,0,16H
- RXSTANUM DB 0,0
- RXBUF DB 64,0,0,0,0,0,0,0
- BUFFER DB ' '
- DB 10 DUP(0)
- TXBUF1 DB 1,0,11H
- COMMAND DB 1BH,0,61,0,1
- LENTH DB 0
- FRAM DB ' '
- RXBUF1 DB 82H,0
- RXNET_NAME DB ' '
- DB 64 DUP(14H)
- DB 128 DUP(0)
- ;
- START: MOV AX,CS
- MOV DS,AX
- MOV ES,AX
- CALL FILL ;FILL BUFF WITH SPACES
- MOV SI,OFFSET TXBUF1 ;GET NETWORK NAME
- MOV DI,OFFSET RXBUF1
- MOV AH,NFUNC
- INT DOSINT
- MOV DI,OFFSET RXNET_NAME ;MOVE NAME TO PRINT STRING
- MOV SI,OFFSET PNET_NAME
- GETNET: MOV AL,[DI]
- CMP AL,0
- JZ PHEADER
- MOV [SI],AL
- INC DI
- INC SI
- JMP SHORT GETNET
-
- PHEADER: MOV DX,OFFSET HEADER ;PRINT HEADER
- MOV AX,0900H
- INT DOSINT
- GSTANUM: INC BYTE PTR CS:RXSTANUM ;SET STATION NUMBER
- MOV SI,OFFSET STATION
- MOV AL,CS:RXSTANUM
- CALL CONVERT ;MAKE PRINTABLE
- CMP BYTE PTR CS:RXSTANUM,18H ;MORE THAN 24 ?
- JNZ CHKLINK ;NO
- JMP CHNGMSG ;YES, CHANGE MESSAGE
-
- CHKLINK: CMP BYTE PTR CS:RXSTANUM,33H ;MORE THAN 51 THEN LINK
- JNZ GETUSER ;NO
- JMP EXITRTN ;YES, THEN EXIT
-
- GETUSER: MOV DI,OFFSET RXBUF ;GET STATIONS USER
- MOV SI,OFFSET TXBUF
- MOV AX,0E300H
- INT DOSINT
- CMP BYTE PTR CS:BUFFER,0 ;NO USER?
- JZ GSTANUM ;NO
- INC BYTE PTR CS:CURSTANUM ;BUMP STATION
- CMP BYTE PTR CS:RXSTANUM,18H ;MORE THEN 24?
- JLE GETUSE1 ;NO
- INC BYTE PTR CS:LINKEDCNT ;BUMP LINKED COUNT
- GETUSE1: MOV SI,OFFSET BUFFER ;MOVE TO PRINT BUFFER
- MOV DI,OFFSET SPACES
- MOV CX,0CH ;12 CHARACTERS
- GETUSE2: MOV AL,[SI] ;GET
- CMP AL,0 ;LAST BYTE?
- JZ GETPROP ;YES
- MOV [DI],AL ;MOVE
- INC SI ;BUMP POINTERS
- INC DI
- DEC CX
- CMP CX,0
- JNZ GETUSE2 ;LOOP
- GETPROP: MOV SI,OFFSET BUFFER ;SETUP FOR GET PROPERTIES CALL
- MOV DI,OFFSET FRAM
- MOV CX,0
- GETPRO1: MOV AL,[SI]
- CMP AL,0 ;LAST BYTE?
- JZ GETPRO2
- MOV [DI],AL
- INC SI
- INC DI
- INC CX
- CMP CX,0EH ;MOVE 15 BYTES
- JNZ GETPRO1
- GETPRO2: MOV CS:LENTH,CL ;SAVE LENGTH
- MOV AL,1 ;MARK
- MOV [DI],AL
- INC DI ;BUMP POINTER
- MOV SI,OFFSET BINDERY ;SET IDENTIFY COMMAND
- MOV CX,0FH
- GETPRO3: MOV AL,[SI]
- MOV [DI],AL
- INC SI
- INC DI
- DEC CX
- CMP CX,0 ;LAST BYTE?
- JNZ GETPRO3
- MOV AL,CS:FRAM ;CHECK FOR SUPERVISOR
- CMP AL,53H ;'S'
- JNZ READPRO ;NO
- MOV AL,1EH ;YES SET NEW LENGTH
- MOV CS:COMMAND,AL
- READPRO: MOV SI,OFFSET COMMAND ;READ PROPERTY VALUE
- MOV DI,OFFSET RXBUF1
- MOV AH,NFUNC
- INT DOSINT
- MOV SI,OFFSET RXNET_NAME ;MOVE TO PRINT STRING
- MOV DI,OFFSET NAMSG
- MOVEPRO: MOV AL,[SI]
- CMP AL,0 ;LAST BYTE?
- JZ PRINTLINE
- MOV BX,[SI] ;CHECK FOR SPACES
- CMP BX,2020H
- JZ SCANEXT ;YES SCAN EXTENSION
- MOV [DI],AL
- INC SI
- INC DI
- INC CX
- CMP CX,80H ;MOVE 128 BYTES
- JNZ MOVEPRO
- SCANEXT: MOV DI,OFFSET RXBUF1 ;SCAN EXTENTSION
- MOV AL,2DH ;'-'
- MOV CX,78H ;'x'
- CLD
- REPNZ SCASB
- JCXZ PRINTLINE
- DEC DI
- DEC DI
- DEC DI
- DEC DI
- MOV SI,OFFSET EXTEN
- MOV CX,8
- MOVEXT: MOV AL,[DI]
- CMP AL,0
- JZ PRINTLINE
- MOV [SI],AL
- INC DI
- INC SI
- DEC CX
- CMP CX,0
- JNZ MOVEXT
- PRINTLINE: MOV NAMSG+33,'│'
- MOV DX,OFFSET MSGLINE ;PRINT LINE OF DATA
- MOV AH,9
- INT DOSINT
- CALL FILL ;REFILL BUFFER WITH SPACES
- JMP GSTANUM
-
- EXITRTN: MOV SI,OFFSET CONCNT ;POINT TO STATION COUNT
- MOV AL,CS:CURSTANUM ;CONVERT TO PRINTABLE
- MOV AH,CS:LINKEDCNT
- SUB AL,AH
- CALL CONVERT
- MOV SI,OFFSET LINCNT ;POINT TO LINKED COUNT
- MOV AL,CS:LINKEDCNT ;CONVERT TO PRINTABLE
- CALL CONVERT
- MOV DX,OFFSET CONNECT ;PRINT ENDING MESSAGE
- MOV AH,9
- INT DOSINT
- MOV DX,OFFSET TRAILER ;PRINT ENDING BOX LINE
- MOV AH,9
- INT DOSINT
- INT 20H ;TERMINATE PROGRAM
- CHNGMSG: MOV SI,OFFSET CHGMSG ;CHANGE LOGGED TO LINKED
- MOV DI,OFFSET LOLIMSG
- MOV CX,4
- CHNGMS1: MOV AL,[SI]
- MOV [DI],AL
- INC DI
- INC SI
- DEC CX
- CMP CX,0
- JNZ CHNGMS1
- JMP CHKLINK
-
- FILL: MOV DI,OFFSET SPACES ;FILL BUFFER WITH SPACES
- MOV AX,2020H
- MOV CX,38H ;'8'
- FILL2: MOV [DI],AX
- INC DI
- DEC CX
- CMP CX,0
- JNZ FILL2
- RET
- ONLINE ENDP
- CONVERT PROC NEAR ;CONVERT TO PRINABLE NUMBER
- MOV AH,0
- MOV CX,0AH
- MOV DX,0
- DIV CX
- MOV BX,DX
- ADD AL,'0'
- MOV [SI],AL
- MOV AX,BX
- MOV CX,1
- MOV DX,0
- DIV CX
- ADD AL,'0'
- MOV [SI+1],AL
- RET
- CONVERT ENDP
- CODE ENDS
- ;
- END ONLINE